<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        const obj = {
            uname: 'pink',
            age: 18,
            hobby: ['乒乓球', '足球']
        }
        const o = {}
        // 拷贝函数 简易版深拷贝 
        function deepCopy(newObj, oldObj) {
            for (let k in oldObj) {
                // 处理数组的问题 数组不可以直接赋值因为是给地址值
                if (oldObj[k] instanceof Array) {//先把数组筛完来 要先写数组
                    newObj[k] = []
                    deepCopy(newObj[k], oldObj[k])//再把数组传进去进行遍历
                } else if (oldObj[k] instanceof Object) {
                    newObj[k] = {}
                    deepCopy(newObj[k], oldObj[k])//再把对象传进去进行遍历
                } else {
                    // k 属性名 uname  oldObj[k]属性值 18
                    newObj[k] = oldObj[k]
                }

            }
        }
        deepCopy(o, obj)
        console.log(o);
        o.age = 20
        console.log(obj);
    </script>
</body>

</html>